﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using SlideShow.Models;

namespace EjemploMVC.Controllers
{
    public class ConsultaController : Controller
    {

        private List<SlideShow.CursosPortal.Curso> CrearCursos()
        {
            List<ConsultaModels> lista = new List<ConsultaModels>();
            SlideShow.CursosPortal.CursosClient proxy = new SlideShow.CursosPortal.CursosClient();
            List<SlideShow.CursosPortal.Curso> lista_usuario = proxy.listarCursos().ToList();
            return lista_usuario;
           
        }

        public ActionResult GestionarCorreos()
        {
            
            SlideShow.Colas.ConsultasColasClient mensa = new SlideShow.Colas.ConsultasColasClient();
            mensa.DoWork();

            return View(); 
        }


        //
        // GET: /Consulta/

        public ActionResult Index()
        {
            List<SlideShow.CursosPortal.Curso> lista = CrearCursos();
            var model = new ConsultaModels
            {
                Cursos = (lista).Select(c => new SelectListItem{Value = c.id.ToString(), Text = c.nombre}),
                EncargadoCursos = "",
                Mensaje = "",
                MensajeConsulta = ""
            };

            return View(model); 
        }


        [HttpPost]
        public ActionResult Index(FormCollection p_form)
        { 

            List<SlideShow.CursosPortal.Curso> lista = CrearCursos();
            Int32 idCurso = int.Parse(p_form[1].Trim());
            String MsgConsulta = (p_form[3].Trim());
            string correodestino = (p_form[4].Trim());

            SlideShow.Consultas.Consultamail consultaservicio = new SlideShow.Consultas.Consultamail();
            consultaservicio.correo = correodestino;
            consultaservicio.Mensaje = MsgConsulta;

            
            if (idCurso.ToString() != "")
            {
                var xx = (from c in lista
                          where c.id == idCurso
                          select new { c.id, c.nombre, c.responsable }).First();

                string MensajeEnviado = "";
                if (MsgConsulta != "")
                 {
                     SlideShow.Consultas.ConsultasClient svc = new SlideShow.Consultas.ConsultasClient();
                     MensajeEnviado = svc.EnviarConsulta(consultaservicio);
                 }

                var model = new ConsultaModels
                {
                    
                    Cursos = (lista).Select(c => new SelectListItem { Value = c.id.ToString(), Text = c.nombre, Selected = c.id == idCurso ? true : false }),
                    EncargadoCursos = xx.responsable.ToString(),
                    MensajeConsulta = MensajeEnviado,
                    idCurso = idCurso
                };
                return View(model);
            }
            else
            {
                var model = new ConsultaModels
                {
                   
                    Cursos = (lista).Select(c => new SelectListItem { Value = c.id.ToString(), Text = c.nombre }),
                    EncargadoCursos = "",
                    MensajeConsulta = ""
                };
                return View(model);
            }
            
        }

        public class Consultamail
        {
            public string correo { get; set; }
            public String Mensaje { get; set; }
        } 

        //
        // GET: /Consulta/Details/5

        public ActionResult Details(int id)
        {
            return View();
        }

        //
        // GET: /Consulta/Create

        public ActionResult Create()
        {
            return View();
        } 

        //
        // POST: /Consulta/Create

        [HttpPost]
        public ActionResult Create(FormCollection collection)
        {
            try
            {
                // TODO: Add insert logic here

                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }
        
        //
        // GET: /Consulta/Edit/5
 
        public ActionResult Edit(int id)
        {
            return View();
        }

        //
        // POST: /Consulta/Edit/5

        [HttpPost]
        public ActionResult Edit(int id, FormCollection collection)
        {
            try
            {
                // TODO: Add update logic here
 
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }

        //
        // GET: /Consulta/Delete/5
 
        public ActionResult Delete(int id)
        {
            return View();
        }

        //
        // POST: /Consulta/Delete/5

        [HttpPost]
        public ActionResult Delete(int id, FormCollection collection)
        {
            try
            {
                // TODO: Add delete logic here
 
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }
    }
}
